iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
Software Development

C++ 三十天學習紀錄系列 第 14

【Day 14】Function 函數

  • 分享至 

  • xImage
  •  

Functions

緊接著,我們就要來介紹函數了!寫函數可以讓我們的程式碼更簡潔明瞭也更有效率,因此當程式碼又臭又長的時候,我們就可以靠寫函數來輔助!

函數跟斯斯一樣有兩種,一種是我們自己定義的(user-defined function),另一種是函式庫中本來就定義好的(system-defined function)。

這邊我就著重在 user-defined function,從定義函數開始!

首先,我們要先在 main function 的前面,先 declare:

括號中的參數可以有很多個,例如:

接著在main function的外面,要定義這個函數要拿來做甚麼:

something 的形態要符合我們定義這個函數的 return type,除了 void,所有的函數都需要寫 return,只要遇到return,這個函數就會停止,並回傳其值。
若一函數的 return type 是 void,就不需要寫 return,void 型態的函數是不會回傳任何東西的。
那在 C++ 中,我們只能 return 0 或 1 個變數,不過不論是什麼樣的型態中,不需要回傳陣列,陣列中的值也會隨著函數 statements 變動。

呼叫函數

引數、參數
我們會看到 parameters 與 arguments,這兩個詞從大二修統計就陰魂不散,我花了一段時間才好不容易記起來,那這兩者在程式語言中到底有何不同呢?

名稱 意義
Parameters 參數 是我們在定義函數時所用的變數名稱
Arguments 引數 在呼叫函數時實際傳入的值

舉例來說,我們宣告一個函數:

這裡面的x、y就是parameters而當我們在呼叫此函數的時候:

實際傳入的 3、5 就是 arguments。

在學了函數之後,我們就可以按作用範圍(scope)與生命期(lifetime)分為四種變數:global variableslocal variablesexternal variablesstatic variables

但在這之前,要先知道甚麼是區塊(block)
區塊就是任何以大括號{ }包起來的區域, 如函式區塊, if區塊, for區塊。

1. Global variables
簡單來說,就是在 block 外被宣告,在 block 中被運用。

2. Local variables
與 global variables 相對,在 block 裡出生,也在 block 結束時死亡。因此,在 block 外是無法使用任何local variable 的。

3. External variables
一個根本就不在這個 program 裡面的 global variable,如果一個變數想要在別的 program 裡面也被使用,宣告此變數時需要加 extern,例如:

4. Static variables
只會在第一次定義時給初值之後再碰到此敘述時,會將其視為宣告,而不會再做初始化的動作,宣告時前面加 static,例如:

static variable可以用了數一個函數被呼叫了幾次。

以上,就是我對於函數的筆記!


上一篇
【Day 13】Array - Practice 1
下一篇
【Day 15】Function - Practice 1
系列文
C++ 三十天學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言